RT-Thread官方网站: https://www.rt-thread.org/
开发环境:
RT-Thread版本:4.0.3
操作系统:Windows10
Keil版本:V5.30
开发板MCU:STM32H750XB
2.1准备工作
在电脑上装好 git,软件包管理功能需要 git 的支持。git 的下载地址为 https://git-scm.com/downloads ,根据向导正确安装 git,并将 git 添加到系统环境变量。
注意在工作环境中,所有的路径都不可以有中文字符或者空格。
2.1.1 Env工具安装
Env 是 RT-Thread 推出的开发辅助工具,针对基于 RT-Thread 操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。其内置的 menuconfig 提供了简单易用的配置剪裁工具,可对内核、组件和软件包进行自由裁剪,使系统以搭积木的方式进行构建。
主要特性:
menuconfig 图形化配置界面,交互性好,操作逻辑强;
丰富的文字帮助说明,配置无需查阅文档;
使用灵活,自动处理依赖,功能开关彻底;
自动生成 rtconfig.h,无需手动修改;
使用 scons 工具生成工程,提供编译环境,操作简单;
提供多种软件包,模块化软件包耦合关联少,可维护性好;
软件包可在线下载,软件包持续集成,包可靠性高;
Env 工具包含了 RT-Thread 源代码开发编译环境和软件包管理系统。从 RT-Thread 官网下载 Env 工具。
下载完成后,打开 Env 控制,RT-Thread 软件包环境主要以命令行控制台为主,同时以字符型界面来进行辅助,使得尽量减少修改配置文件的方式即可搭建好 RT-Thread 开发环境的方式。 打开 Env 控制台有两种方式:
方法一:点击 Env 目录下可执行文件
进入 Env 目录,可以运行本目录下的 env.exe,如果打开失败可以尝试使用 env.bat。
打开env的界面如下:
方法二:在文件夹中通过右键菜单打开 Env 控制台
Env 目录下有一张 Add_Env_To_Right-click_Menu.png(添加 Env 至右键菜单.png) 的图片,如下:
根据图片上的步骤操作,就可以在任意文件夹下通过右键菜单来启动 Env 控制台。效果如下:
【注意】因为需要设置 Env 进程的环境变量,第一次启动可能会出现杀毒软件误报的情况,如果遇到了 杀毒软件误报 ,允许 Env 相关程序运行,然后将相关程序添加至白名单即可。
Env就安装好了,很简单。
2.1.2下载源码
ART-Pi SDK源码在 https://github.com/RT-Thread-Studio/sdk-bsp-stm32h750-realthread-artpi 地址,点击链接找到下图的位置,将其下载下来。
可以在线下载,也可使用Git下载 RT-Thread 源码,使用命令:
$git clone https://github.com/RT-Thread-Studio/sdk-bsp-stm32h750-realthread-artpi.git
下载源码,进入源码目录:
下表是该目录的简单说明。
目录名 | 描述 |
---|---|
debug | QSPI FLASH 下载算法等 |
components | RT-Thread 的各个组件目录 |
documents | 一些说明文件,如电路图,文档,图片以及 datasheets 等 |
libraries | STM32H7 固件库,通用外设驱动,rt_ota 固件库,wlan 固件库等 |
projects | 示例工程文件夹,包含出厂程序,网关程序等 |
rt-thread | RT-Thread 内核的源文件 |
tools | ART-Pi wifi 固件,BT 固件,rbl 打包工具等 |
RealThread_STMH750-ART-Pi | 描述 ART-Pi 的硬件信息 |
2.2使用ART-Pi编译和运行 RT-Thread
第一个例子还是使用点灯的实例。先看看笔者使用的开发板的LED硬件电路图。
2.2.1选择工程
这个例子是RT-Thread已经做好的,我们直接用就行。
值得注意的是,我们选择工程是应用程序。
项目框架主要目录及文件的说明如下表所示:
文件 / 目录 | 描述 |
---|---|
applications | 用户应用代码目录 |
drivers 或 board | RT-Thread 提供的底层驱动/板级相关的移植 |
Libraries | 芯片官网下载的固件库 |
rt-thread | RT-Thread 源代码 |
Kconfig | menuconfig 使用的文件 |
project.ewww | 用户使用的 IAR 工程文件 |
project.uvprojx | 用户使用的 MDK 工程文件 |
template. uvprojx | MDK 工程模板文件 |
SConscript | SCons 配置工具使用的文件 |
SConstruct | SCons 配置工具使用的文件 |
README.md | BSP 说明文件 |
rtconfig.h | BSP 配置头文件 |
注意:此命令从 RT-Thread 3.1.0 正式版才开始支持。
下图为根据自己使用的调试工具设置对应的调试选项,相关配置修改完成后就可以关闭模板工程。笔者使用的是ST-Link。
【注意】源代码和头文件路径的添加不建议直接修改工程模板,后面会介绍使用 Scons 工具往工程添加源代码及头文件路径。
每个 BSP 下的工程都有默认的配置,比如系统内核支持的最大线程优先级、系统时钟频率、使用的设备驱动、控制台使用的串口等。RT-Thread 操作系统具有高度的可裁剪性,用户可以根据自己的需求使用 Env 工具进行配置和裁剪。
在 BSP 目录下打开 Env,首先进入工程目录,如:sdk-bsp-stm32h750-realthread-artpi \projects\art_pi_blink_led,如图所示以管理员身份打开 PowerShell:
依次输入如下三个命令:
#cmd
#mklink /D rt-thread ..\..\rt-thread
#mklink /D libraries ..\..\libraries
然后在使用 menuconfig 命令打开配置界面。menuconfig 常用快捷键如图所示:
还可以使能在线软件包,如下图所示,使能了 mqtt 相关的软件包。
2.2.3生成MDK工程
选择软件包后需要使用 pkgs –update 命令下载软件包,然后使用scons –target=mdk5 命令或者 scons –target=iar 命令生成 MDK 或者 IAR 工程。
#scons --target=mdk5
打开新生成的 MDK 工程 project.uvprojx ,可以看到我们选择的 paho mqtt 相关的软件包源文件已经被添加到了工程中。工程对应的芯片型号也是前文基于工程模板选择的芯片型号。
【注1】如果我们要使用 menuconfig 命令来配置,则需要检查 art_pi_blink_led 工程根目录下的 Kconfig 文件中的相关路径是否正确,否则会报错导致打不开配置面板。
【注2】软件更新
下载 :如果软件包在本地已被选中,但是未下载,此时输入:pkgs –update ,该软件包自动下载;
更新 :如果选中的软件包在服务器端有更新,并且版本号选择的是 latest 。此时输入: pkgs –update ,该软件包将会在本地进行更新;
删除 :某个软件包如果无需使用,需要先在 menuconfig 中取消其的选中状态,然后再执行: pkgs –update 。此时本地已下载但未被选中的软件包将会被删除。
【注3】
如果大家直接修改 MDK 工程文件 project.uvprojx 或者 IAR 的工程文件 project.ewww 添加了自己的代码,或者修改了工程的一些基本配置,生成的新工程会覆盖之前对工程文件 project 的修改。
2.2.4编译 RT-Thread固件
接下来就是编译工程,生成目标代码。
Env 中携带了 Python & scons 环境,只需在相应bsp目录中运行 scons 命令即可使用默认的 ARM_GCC 工具链编译 bsp。输入 scons 命令编译工程:
编译完成会有如下信息:
rtthread.bin就是生成的可执行文件。
==【注】Env工具支持Linux的基本指令。==
当然我们也可以使用keil或者IAR编译,前提是安装有KEIL或者IAR,笔者安装了KEIL,因此直接使用KEIL编译。
值得注意的是,我们在调试代码时,需要跟踪代码,在MDK 中需要设置 Browse Information 跟踪代码,设置好后记得重新编译,但是勾选后编译比较慢,请耐心等待一会。
2.2.5使用STM32CubeProgrammer烧写 RT-Thread固件
下面介绍STM32CubeProgrammer烧录固件到开发板的过程。
1.连接板子STlink,并将STlink连接到电脑。
2.打开STM32CubeProgrammer,默认配置即可。
如果连接正常会识别设备号,点击“connect”即可进行连接。
连接成功如下:
打开一个bin或者hex文件,然后点击“download”。
等待下载完成即可。
【注】如果STlink版本过低,是无法使用的,可使用ST-LinkUpgrade进行固件升级。
2.2.6实验现象
烧写成功后复位。即可看到D2亮灭。
接下来我们使用串口终端进行调试,本文使用终端软件 Xshell、PuTTY 等工具接收工程控制台对应串口发送的数据,电脑右键→属性→设备管理器→端口(COM 和 LPT),即可查看串口对应的 COM 号,本文为 COM4。打开 Xshell按照下图配置,波特率一般配置为 115200。